package com.fhzn.boss.service;


import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.fhzn.boss.entity.User;
import com.fhzn.boss.web.request.UserLoginRequest;
import com.fhzn.boss.web.request.UserOpRequest;
import com.fhzn.boss.web.request.UserQueryRequest;
import com.fhzn.boss.web.vo.UserVO;

/**
 * @author 老顾
 * @apiNote
 * @since 2023/12/22
 */
public interface UserService extends IService<User> {


    /**
     * 分页查询用户
     *
     * @param request 查询请求
     * @return 分页结果
     */
    Page<User> userWithPage(UserQueryRequest request);

    /**
     * 添加用户
     *
     * @param request 添加请求
     * @return 添加结果
     */
    UserVO add(UserOpRequest request);

    /**
     * 更新用户
     *
     * @param request 更新请求
     * @return 更新结果
     */
    String updateUser(UserOpRequest request);


    /**
     * 用户密码校验
     *
     * @param request 校验请求
     * @return 校验结果
     */
    String login(UserLoginRequest request);

    /**
     * 根据用户昵称查询单个用户
     *
     * @param nickname 用户昵称
     * @return 用户信息
     */
    User findUserByNickName(String nickname);

}
